package com.aiwiown.face.response.faceid;

import com.aiwiown.face.ApiResponse;
import com.aiwiown.face.domain.ocrbank.OCRBankCardPosition;
import com.aiwiown.face.internal.mapping.ApiField;

/**
 * <pre>
 * </pre>
 * OCRBankCardV3Response
 * Date: 2020/7/21 0021
 * Time: 10:33
 *
 * @author tang.xiaosheng@qq.com
 */
public class OCRBankCardV3Response extends ApiResponse {
    private static final long serialVersionUID = 1138127537658433784L;

    /**
     * 表示图片的上传结果
     * <p>
     * 1000系列表示照片上传成功
     * <p>
     * 1001：图片上传成功，说明上传的图片中检测到了银行卡，图中若包含多张银行卡将随机返回其中一张的信息
     * 1002：图片上传成功，银行卡号存在未识别出来的数字
     * 2000系列表示照片上传失败
     * <p>
     * 2001：图片格式不支持
     * 2002：图片中未检测到银行卡
     * 2003：图片大小不符合要求
     * 其他错误码，请预留处理方案
     */
    @ApiField("result")
    private Integer result;
    /**
     * 识别出来的卡号信息。仅当“result=1001”时返回。
     * <p>
     * 例如："6214 5633 7623 5364" (返回值中包含空格)
     * <p>
     * 注：当中间某些字符出现遮挡，模糊等无法识别的情况出现时，该字段的返回值中可能包含“?”，例如：6214563376??5364
     */
    @ApiField("number")
    private String number;
    /**
     * 表示银行卡所属的银行，内容为银行的名字。仅当“result=1001”时返回；如果没有识别到，则返回“null”。
     */
    @ApiField("bank")
    private String bank;
    /**
     * 表示银行卡上面的金融组织。仅当“result=1001”时返回；如果没有识别到列表内的组织，则返回“null”。
     * <p>
     * 目前会返回的组织内容如下：UnionPay、MasterCard、JCB、VISA
     * <p>
     * （注：如有多个卡组织，以“,”分隔）
     */
    @ApiField("organization")
    private String organization;
    /**
     * 预留设计，该功能尚未启用，默认返回“null”
     * <p>
     * 银行卡片上的有效期。一般的信用卡均会有该数据，但是储蓄卡会不存在。仅当“result=1001”时返回，未识别到会返回“null”。
     * <p>
     * 该字段的返回格式通常为"09/23"，一些卡片可能会有具体日期，所以会有两个"/"。
     */
    @ApiField("valid_date")
    private String validDate;
    /**
     * 预留设计，该功能尚未启用，默认返回“null”
     * <p>
     * 表示银行卡上的姓名，通常信用卡才会返回。仅当“result=1001”时返回；如果未识别到，则返回“null”。
     */
    @ApiField("name")
    private String name;
    /**
     * 仅当“result=1001”时返回。
     * <p>
     * 银行卡四个角的像素点坐标，包含以下属性：
     * <p>
     * left_top：银行卡左上角的像素点坐标
     * right_top：银行卡右上角的像素点坐标
     * left_bottom：银行卡左下角的像素点坐标
     * right_bottom：银行卡右下角的像素点坐标
     * 每个属性都包含以下字段，每个字段的值都是整数。
     * <p>
     * x：像素点横坐标位置
     * y：像素点纵坐标位置
     */
    @ApiField("position")
    private OCRBankCardPosition position;

    public Integer getResult() {
        return result;
    }

    public void setResult(Integer result) {
        this.result = result;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getBank() {
        return bank;
    }

    public void setBank(String bank) {
        this.bank = bank;
    }

    public String getOrganization() {
        return organization;
    }

    public void setOrganization(String organization) {
        this.organization = organization;
    }

    public String getValidDate() {
        return validDate;
    }

    public void setValidDate(String validDate) {
        this.validDate = validDate;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public OCRBankCardPosition getPosition() {
        return position;
    }

    public void setPosition(OCRBankCardPosition position) {
        this.position = position;
    }
}
